home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
dev
/
obero
/
oberon_lib.lha
/
oberon-a
/
source1.lha
/
source
/
Amiga
/
Icon.mod
< prev
next >
Wrap
Text File
|
1994-08-08
|
4KB
|
157 lines
(**************************************************************************
$RCSfile: Icon.mod $
Description: Interface to icon.library
Created by: fjc (Frank Copeland)
$Revision: 3.2 $
$Author: fjc $
$Date: 1994/08/08 01:12:16 $
Includes Release 40.15
(C) Copyright 1985-1993 Commodore-Amiga, Inc.
All Rights Reserved
Oberon-A interface Copyright © 1994, Frank Copeland.
This file is part of the Oberon-A Interface.
See Oberon-A.doc for conditions of use and distribution.
***************************************************************************)
MODULE Icon;
(*
** $C- CaseChk $I- IndexChk $L+ LongAdr $N- NilChk
** $P- PortableCode $R- RangeChk $S- StackChk $T- TypeChk
** $V- OvflChk $Z- ZeroVars
*)
IMPORT SYS := SYSTEM, E := Exec, W := Workbench;
(*
** $VER: icon.h 36.1 (26.10.90)
**
** external declarations for icon.library
*)
CONST
name * = "icon.library";
(*-- Icon Base variable --------------------------------------------*)
TYPE
IconBasePtr * = CPOINTER TO IconBase;
IconBase * = RECORD (E.Library) END;
VAR
base * : IconBasePtr;
(*-- Library Functions ------------------------------------------------*)
(*
** $VER: icon_protos.h 38.2 (16.6.93)
*)
LIBCALL (base : IconBasePtr) GetIcon*
( name [8] : ARRAY OF CHAR;
icon [9] : W.DiskObjectPtr;
freelist [10] : W.FreeListPtr )
: LONGINT;
-42;
LIBCALL (base : IconBasePtr) PutIcon*
( name [8] : ARRAY OF CHAR;
icon [9] : W.DiskObjectPtr )
: BOOLEAN;
-48;
LIBCALL (base : IconBasePtr) FreeFreeList*
( freelist [8] : W.FreeListPtr );
-54;
LIBCALL (base : IconBasePtr) AddFreeList*
( freelist [8] : W.FreeListPtr;
mem [9] : E.APTR;
size [10] : E.ULONG )
: BOOLEAN;
-72;
LIBCALL (base : IconBasePtr) GetDiskObject*
( name [8] : ARRAY OF CHAR )
: W.DiskObjectPtr;
-78;
LIBCALL (base : IconBasePtr) PutDiskObject*
( name [8] : ARRAY OF CHAR;
diskobj [9] : W.DiskObjectPtr )
: BOOLEAN;
-84;
LIBCALL (base : IconBasePtr) FreeDiskObject*
( diskobj [8] : W.DiskObjectPtr );
-90;
LIBCALL (base : IconBasePtr) FindToolType*
( toolTypeArray [8] : E.APTR;
typeName [9] : ARRAY OF CHAR )
: E.STRPTR;
-96;
LIBCALL (base : IconBasePtr) MatchToolValue*
( typeString [8] : ARRAY OF CHAR;
value [9] : ARRAY OF CHAR )
: BOOLEAN;
-102;
LIBCALL (base : IconBasePtr) BumpRevision*
( VAR newname [8] : ARRAY OF CHAR;
oldname [9] : ARRAY OF CHAR );
-108;
(* --- functions in V36 or higher (distributed as Release 2.0) ---*)
LIBCALL (base : IconBasePtr) GetDefDiskObject*
( type [0] : LONGINT )
: W.DiskObjectPtr;
-120;
LIBCALL (base : IconBasePtr) PutDefDiskObject*
( diskObject [8] : W.DiskObjectPtr )
: BOOLEAN;
-126;
LIBCALL (base : IconBasePtr) GetDiskObjectNew*
( name [8] : ARRAY OF CHAR )
: W.DiskObjectPtr;
-132;
LIBCALL (base : IconBasePtr) DeleteDiskObject*
( name [8] : ARRAY OF CHAR )
: BOOLEAN;
-138;
(*-- Library Base variable --------------------------------------------*)
(* $L- Address globals through A4 *)
(*-----------------------------------*)
PROCEDURE* CloseLib ();
BEGIN (* CloseLib *)
IF base # NIL THEN E.base.CloseLibrary (base) END
END CloseLib;
(*-----------------------------------*)
PROCEDURE OpenLib * (mustOpen : BOOLEAN);
BEGIN (* OpenLib *)
IF base = NIL THEN
base :=
SYS.VAL
( IconBasePtr,
E.base.OpenLibrary (name, E.libraryMinimum) );
IF base # NIL THEN SYS.SETCLEANUP (CloseLib)
ELSIF mustOpen THEN HALT (100)
END;
END;
END OpenLib;
BEGIN
base := NIL
END Icon.